// config/monitoring.config.js
// 注意：此配置仅用于文档说明，实际逻辑在 monitorHandler.js 中实现

module.exports = {
    // 环境配置
    environment: 'development', // development, staging, production
  
    // 定时触发器配置
    triggerInterval: '* * * * *', // 每分钟执行一次（cron 格式）
  
    // 任务检查频率策略（基于任务年龄）
    checkStrategy: {
      // 0-5 分钟：每次都检查（快速发现失败和成功）
      earlyStage: { ageMin: 0, ageMax: 5, checkEveryMinute: 1 },
      // 5-20 分钟：每 2 分钟检查一次
      midStage: { ageMin: 5, ageMax: 20, checkEveryMinute: 2 },
      // 20-120 分钟：每 5 分钟检查一次
      lateStage: { ageMin: 20, ageMax: 120, checkEveryMinute: 5 },
      // 120-1440 分钟：每 10 分钟检查一次
      veryLateStage: { ageMin: 120, ageMax: 1440, checkEveryMinute: 10 },
      // 1440 分钟+：停止监控
      maxAge: 1440
    },

    // 不同环境的配置（已弃用，保留用于兼容）
    // 开发环境
    development: {
      shortTerm: {
        enabled: true,
        maxAge: 3 * 60 * 1000,        // 开发环境：3分钟
        checkInterval: 10000,           // 10秒检查（仅在云函数实例存活期间有效）
      },
      longTerm: {
        maxAge: 1440,                  // 24小时后停止
        strategies: [
          { ageMin: 0, ageMax: 5, checkEveryTriggers: 1 },    // 每次都检查
          { ageMin: 5, ageMax: 20, checkEveryTriggers: 2 },   // 每 2 分钟
          { ageMin: 20, ageMax: 120, checkEveryTriggers: 5 }, // 每 5 分钟
          { ageMin: 120, ageMax: 1440, checkEveryTriggers: 10 } // 每 10 分钟
        ]
      },
      debug: {
        enabled: true,
        logLevel: 'debug',
        detailedLogs: true
      }
    },

    // 测试环境
    staging: {
      shortTerm: {
        enabled: true,
        maxAge: 5 * 60 * 1000, // 5分钟
        checkInterval: 10000,  // 10秒检查
      },
      longTerm: {
        maxAge: 360,                   // 6小时
        strategies: [
          { ageMin: 5, ageMax: 20, checkEveryTriggers: 1 }, // 每30秒检查
          { ageMin: 20, ageMax: 120, checkEveryTriggers: 4 }, // 每2分钟检查
          { ageMin: 120, ageMax: 360, checkEveryTriggers: 20 } // 每10分钟检查
        ]
      },
      debug: {
        enabled: true,
        logLevel: 'info'
      }
    },
  
    // 生产环境
    production: {
      shortTerm: {
        enabled: true,
        maxAge: 7 * 60 * 1000, // 7分钟
        checkInterval: 15000,  // 15秒检查
      },
      longTerm: {
        maxAge: 1440,                  // 24小时
        strategies: [
          { ageMin: 7, ageMax: 30, checkEveryTriggers: 2 },  // 每60秒检查
          { ageMin: 30, ageMax: 120, checkEveryTriggers: 4 }, // 每2分钟检查
          { ageMin: 120, ageMax: 720, checkEveryTriggers: 20 }, // 每10分钟检查
          { ageMin: 720, ageMax: 1440, checkEveryTriggers: 60 } // 每1小时检查
        ]
      },
      debug: {
        enabled: false,
        logLevel: 'warn'
      }
    }
  };
  
  // 导出当前环境的配置
  const config = module.exports;
  const env = config.environment;
  module.exports.current = config[env] || config.production;